榫卯,是中國傳統木工中接合建築與結構的方式,利用榫頭插入另一個的卯眼中,使兩個構件連接並固定,與現代工藝不同的地方在於榫和卯眼之間並無接著劑,不像是現代建築中利用大量的黏膠水泥,而是用最原始的方法組成,我們的知識也是如此。在討論完鐵達尼號的案例,在接下來的內容將要分享的事 Excel 跟 Python 之間的應用關聯,我們也許花了很長的時間熟悉 Python,也學了很多很酷炫的技巧,但是當我們要把這些技術應用回 Excel,或者是說想要應用 Excel 來達成同樣的目標時,反而覺得綁手綁腳的,畢竟兩個是完全不一樣的工具,開發的出發點也有所不同。因此在接下來我會從基本的 Python 操作搭配 Excel 來說明兩者間的關聯性和應用方式。
在 Python 的開發中,Pandas 是我們的好朋友,他是一個免費的開源資料庫,由 Wes McKinney 在2008年開發的,主要是為了方便和直觀地處理關係型或標籤型數據而製作的。它提供了各種數據結構和操作,用於處理數字數據和時間序列。這個庫是建立在NumPy庫之上的,所以通常使用上會一同進行,Pandas的速度很快,它對用戶來說有很高的性能和生產力,所以目前被廣泛應用在資料科學上。
下面一個簡單的例子說明了為什麼加權平均數可以成為一個有用的統計方法。下面表格顯示了3個不同的顧客為同一產品支付的價格和數量。如果有人問,我們鞋子的平均價格是多少?鞋子價格的簡單平均數將是 (300+200+150=$216.67) 雖然這是一個準確的平均數值,但對於理解我們的平均銷售價格來說,這在直覺上是沒有意義的。
如果我們想用平均數來預測收入,這就特別具有挑戰性。但如果看一下這些數字,你可以看到我們以小魚 200 美元的價格出售的鞋子遠遠多於超過 200 美元的。因此 216.67 美元的平均值並不能準確反映市場上的真實平均售價。更有用的是,根據購買數量對這些價格進行加權。這樣的平均能代表所有客戶的購買模式,加權平均數可以這樣計算。
由於我們絕大部分的鞋子都是在200美元到150美元之間銷售,這個數字比簡單的平均數更準確地代表了我們產品的整體平均價格。
加權的概念很簡單,但在 Pandas 中計算起來可能有點困難,因為你需要兩個值:要平均的值(鞋價)和重量(鞋量)所以當你在做複雜的數據分組時,在 Pandas 中會有點不直觀,我們先進行資料的讀取,大家可以注意欄目
sales = pd.read_excel("data.xlsx")
sales.head()
print(sales["Current_Price"].mean())
print(sales["New_Product_Price"].mean())
在許多不同的情況下使用加權平均數就會變得非常容易。此外,建立這個功能並在各種情況下使用它的過程對於培養你日常的pandas數據操作技能是很有用的。在我們的例子數據中,我們有一堆信息,包括當前的價格和數量,以及預測的新產品價格。如果我們想確定一個簡單的平均值,除了使用 Pandas 內置的 mean() 函數來輕鬆計算外,也可以使用 Simple mean 的方法用價格乘上數量的總和 Sum() 來計算平均數值,得到的結果會跟上方相同。
print((sales["Current_Price"] * sales["Quantity"]).sum() / sales["Quantity"].sum())
print((sales["New_Product_Price"] * sales["Quantity"]).sum() / sales["Quantity"].sum())
計算加權平均數還有一種方式是利用 Numpy 函數來計算。
print(np.average(sales["Current_Price"], weights=sales["Quantity"]))
print(np.average(sales["New_Product_Price"], weights=sales["Quantity"]))
今年沒組團,每一筆一字矢志不渝的獻身精神都是為歷史書寫下新頁,有空的話可以走走逛逛我們去年寫的文章。
Jerry 據說是個僅佔人口的 4% 人口的 INFP 理想主義者,總是從最壞的生活中尋找最好的一面,想方設法讓世界更好,內心的火焰和熱情可以光芒四射,畢業後把人生暫停了半年,緩下腳步的同時找了份跨領域工作。偶而散步、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有夢想的人。
謝謝你的時間「訂閱,追蹤和留言」都是陪伴我走過 30 天鐵人賽的精神糧食。